The tremendous computing power available at low cost in the early 21st century has made possible many computer applications that previously were unattainable because of the computational resources required. A prime example is three-dimensional modeling. To compute large three-dimensional models and to manipulate them in real-time requires large computational power, unless the models are very primitive. Today many applications, ranging from computer games with very high levels or realism to modeling of sub-surface geological formations are possible on even relatively mainstream computer systems.
A related trend is the merging of technologies such as televisions, home theatre, computers and game stations to produce PC Entertainment Centers. This trend is complemented by the drive towards 3D games and game environments. One challenge, however, is to make full use of the three dimensional environments by giving the users attractive tools to manipulate objects or characters of these three dimensional environments. These tools can be useful in two-dimensional environments because three-dimensional applications can be presented on two-dimensional (2D) displays.
In the two-dimensional computing world, the mouse has become a ubiquitous feature for allowing a user to move a cursor around in the two-dimensional space. Moving the cursor with the mouse can be used to find and select particular objects. There is a need to be able to move a cursor to objects located in three-dimensional space as well as the need to move objects or characters, characteristics in a 3D environment. This is much more challenging than moving a mouse across a tabletop as is the customary means for moving a cursor using a two-dimensional mouse.
In the prior art there are several known methods for moving a cursor in three-dimensional space. These include moving a receiver with respect to a field established by external beacons or emitters/receivers, with respect to acoustic, magnetic or optical signals that may be detected by the receiver. Problems with such approaches include the need for using external devices. The presence of external emitters/receivers is not always practical for portable and mobile devices. Such devices need to be self-contained, especially when the cursor or objects to be moved or object characteristic to be changed are on their attached screens. Using one or multiple inertial sensors for motion sensing is a way to make such devices self-contained.
Some other prior art solutions rely exclusively on gyroscopes to detect the movement of a 3D mouse, allowing the device to move a cursor in a 2D plane on the monitor. However, these solutions can lack the 3D capability that is needed when dealing with 3D environments.
From the foregoing it is apparent that there is a hitherto unmet need for a 3D pointing/controlling device that is self-contained, lightweight, and which uses low-cost components. The need is also apparent for a controlling device that could be used to remotely control mechanical systems such as Unmanned Air Vehicles (UAVs), UGVs Unmanned Ground Vehicles (UGVs), Unmanned Water Vehicles (UWVs) and other robotics systems, in a natural and efficient manner that is different from the method still followed today as represented by the control unit of model airplanes and the likes. One embodiment of the present invention can be used to address needs such as these.